package com.esbi.projectwebsocket.changeFileTpye;

import java.io.File;

public class RenameJavaFilesToTxt {
    // 这个方法用于将指定文件夹及其子文件夹中的.java文件重命名为.txt文件
    public static void renameJavaFilesToTxt(File folder) {
        // 如果传入的是一个目录
        if (folder.isDirectory()) {
            // 获取该目录下的所有文件和子目录
            File[] files = folder.listFiles();
            if (files!= null) {
                // 遍历所有文件和子目录
                for (File file : files) {
                    // 如果是子目录，则递归调用该方法
                    if (file.isDirectory()) {
                        renameJavaFilesToTxt(file);
                    } else if (file.getName().endsWith(".java")) {//zxw 曾宪旺 可以将txt更改问java
                        // 如果是.java文件，则进行重命名操作
                        // 先获取文件名（不包括后缀）
                        String newName = file.getName().substring(0, file.getName().lastIndexOf('.')) + ".docx";//zxw 曾宪旺 可以将docx更改问txt
                        // 创建一个新的File对象，用于表示重命名后的文件
                        File newFile = new File(file.getParent(), newName);
                        // 执行重命名操作
                        if (file.renameTo(newFile)) {
                            System.out.println("已将 " + file.getName() + " 重命名为 " + newName);
                        } else {
                            System.out.println("重命名 " + file.getName() + " 失败");
                        }
                    }
                }
            }
        }
    }

    // 主方法，用于测试，可以在命令行中直接运行该类时调用renameJavaFilesToTxt方法
    public static void main(String[] args) {
        File folder = new File("C:\\Users\\zxwes\\Desktop\\source"); // 将这里替换为实际的文件夹路径
        renameJavaFilesToTxt(folder);
    }
}